package com.whfc.fuum.dao;

import com.whfc.fuum.dto.AppProjectDTO;
import com.whfc.fuum.dto.SysDeptExtDTO;
import com.whfc.fuum.entity.SysDeptExt;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author qzexing
 * @version 1.0
 * @date 2021-07-21 17:44
 */
@Repository
public interface SysDeptExtMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(SysDeptExt record);

    int insertSelective(SysDeptExt record);

    SysDeptExt selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(SysDeptExt record);

    int updateByPrimaryKey(SysDeptExt record);

    /**
     * 根据组织机构查找组织机构扩展信息
     *
     * @param deptId 组织机构ID
     * @return 组织机构扩展信息
     */
    SysDeptExt selectByDeptId(@Param("deptId") Integer deptId);

    /**
     * 获取详情  组织机构信息  +  扩展信息
     *
     * @param deptId 组织机构ID
     * @return 详情
     */
    SysDeptExtDTO selectDetail(@Param("deptId") Integer deptId);

    /**
     * 逻辑删除扩展信息
     *
     * @param deptId 组织机构ID
     */
    void logicDeleteByDeptId(@Param("deptId") Integer deptId);

    /**
     * 根据组织机构ID扩展信息
     *
     * @param deptIdList 组织机构ID列表
     * @param keyword    搜索关键字
     * @return 扩展信息
     */
    List<SysDeptExtDTO> selectProjectListByDeptIds(@Param("deptIdList") List<Integer> deptIdList, @Param("keyword") String keyword);

    /**
     * 根据组织机构ID扩展信息
     *
     * @param deptIdList 组织机构ID列表
     * @return 扩展信息
     */
    List<AppProjectDTO> selectBasicProjectListByDeptIds(@Param("deptIdList") List<Integer> deptIdList);

    /**
     * 查询项目基本信息
     *
     * @param deptIdList 组织机构ID信息
     * @return 项目基本信息
     */
    List<AppProjectDTO> selectProjectBasicInfo(@Param("deptIdList") List<Integer> deptIdList);


}